package org.dromara.system.service;

import org.dromara.system.domain.TrtcPinStatus;
import org.dromara.system.domain.vo.TrtcPinStatusVo;

import java.util.List;
import java.util.Map;

/**
 * TRTC用户置顶状态Service接口
 *
 * @author Lion Li
 */
public interface ITrtcPinStatusService {

    /**
     * 设置用户置顶状态
     *
     * @param roomId 房间ID
     * @param userId 用户ID
     * @param isPinned 是否置顶
     * @return 是否成功
     */
    boolean setPinStatus(String roomId, String userId, boolean isPinned);

    /**
     * 获取房间内所有用户的置顶状态列表
     *
     * @param roomId 房间ID
     * @return 用户置顶状态Map，key为用户ID，value为包含置顶状态和时间的Map
     */
    List<TrtcPinStatusVo> getPinStatusList(String roomId);

    /**
     * 取消用户置顶状态
     *
     * @param roomId 房间ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean cancelPinStatus(String roomId, String userId);
}
